// axiosSetting.js
import axios from 'axios'
// import { message } from 'antd'
// import { routerRedux} from 'dva/router'
import { getToken } from './auth'
// import store from '../../store'

axios.defaults.withCredentials = true
axios.defaults.timeout = 10000
// eslint-disable-next-line
const codeMessage = {
  200: '服务器成功返回请求的数据。',
  201: '新建或修改数据成功。',
  202: '一个请求已经进入后台排队（异步任务）。',
  204: '删除数据成功。',
  400: '发出的请求有错误，服务器没有进行新建或修改数据的操作。',
  401: '用户没有权限（令牌、用户名、密码错误）。',
  403: '用户得到授权，但是访问是被禁止的。',
  404: '发出的请求针对的是不存在的记录，服务器没有进行操作。',
  406: '请求的格式不可得。',
  410: '请求的资源被永久删除，且不会再得到的。',
  422: '当创建一个对象时，发生一个验证错误。',
  500: '服务器发生错误，请检查服务器。',
  502: '网关错误。',
  503: '服务不可用，服务器暂时过载或维护。',
  504: '网关超时。',
}
axios.interceptors.request.use(
  config => {
      const token = getToken()
      if(token) {
        config.headers.Authorization = token // 让每个请求携带token--['X-Token']为自定义key 请根据实际情况自行修改
      }

      return config
  },
  error => {
      console.log(error) // for debug
      Promise.reject(error)
  }
)
// respone拦截器
axios.interceptors.response.use(
  response => {
      const res = response.data
      if (response.status !== 200 && res.status !== 200) {
          // message.error(response.data.message)
      } else {
          return response.data
      }
  },
  error => {
      if (error === undefined || error.code === 'ECONNABORTED') {
          // message.warning('服务请求超时')
          return Promise.reject(error)
      }
      // const { response: { status }} = error
      // const { response } = error
      // const { dispatch } = store

      // if (status === 400) {
      //     // message.warning('账户或密码错误！')
      //     // dispatch(routerRedux.push('/user/login'))
      // }
      // const info = response.data
      // if (status === 401 || info.status === 40101) {
      //     // dispatch({
      //     //     type: 'login/logout',
      //     // })
      // }
      return Promise.reject(error)
  }
)